Целью данной работы является приобретение навыков работы с системой
контроля версий git. Работа с репозиториями, внесение изменений,
индексация, коммиты.
Задание
Подготовить пространство для работы.
Создать проект.
Внести изменения в проект.
Провести индексацию изменений
Работа с тегами версий.
Отменить локальные изменения (до индексации).
Отменить проиндексированные изменения (перед коммитом).
Отменить коммит.
Удалить коммиты из ветки.
Удаление тега.
Внести изменения в коммиты.
Переместить файлы.
Задание
Рассмотреть Git внутри: Каталог .git.
Работа непосредственно с объектами git.
Навигация по веткам. Изменения в ветке master.
Слияние веток. Создание конфликта.
Разрешение конфликтов.
Сброс ветки style. Сброс ветки master.
Перебазирование.
Слияние в ветку master.
Клонирование репозиториев. Просмотр клонированного репозитория.
Что такое origin? Удаленные ветки. Изменение оригинального
репозитория.
Слияние извлеченных изменений.
Извлечение общих изменений.
Работа с git
Создание проектаКоманда git status, чтобы проверить
текущее состояние репозиторияОдно изменение проиндексировано, второе
нет
Вместо поиска до хэш, использовала ^, обозначающее «родитель v1».
Вместо обозначения v1^ можно использовать v1~1. Это обозначение можно
определить как «первую версию предшествующую v1»
git tag v1
Отменить локальные изменения (до
индексации)Отменить проиндексированные изменения
(перед коммитом)
Работа непосредственно с объектами git. Посмотрим последний коммит в
репозиторий. SHA1 хэш в нашей системе. Мы можем вывести дерево
каталогов, ссылка на который идет в коммите. Это должно быть описание
файлов (верхнего уровня) в нашем проекте (для конкретного коммита).
Вывод каталога lib, вывод файла hello.html.
Работа непосредственно с объектами
git
Самостоятельное исследование
1Самостоятельное исследование
2
Потом используем команду git checkout для переключения между
ветками.
Переключения между ветками
Кратчайший маршрут до разрыва
соединения
Создадим файл README в ветке master. Сделаем коммит изменений
README.md в ветку master. Просмотр отличающихся веток.
git log –graph –all
Путем периодического слияния ветки master с веткой style мы можем
переносить из master любые изменения и поддерживать совместимость
изменений style с изменениями в основной ветке. Но что если изменения в
ветке master конфликтуют с изменениями в style?
Вернемся к ветке style и попытаемся
объединить ее с новой веткой master
Внесём изменения в
lib/hello.html
Вернемся на ветке style к точке перед тем, как мы слили ее с веткой
master. Мы можем сбросить ветку к любому коммиту. По сути, это изменение
указателя ветки на любую точку дерева коммитов. В этом случае мы хотим
вернуться в ветке style в точку перед слиянием с master. Нам необходимо
найти последний коммит перед слиянием.
Сброс ветки style
Сброс ветки master
Мы поддерживали соответствие ветки style с веткой master (с помощью
rebase), теперь давайте сольем изменения style в ветку master.
Мы видим, что клонированный репозиторий знает об имени по умолчанию
удаленного репозитория. Давайте посмотрим, можем ли мы получить более
подробную информацию об имени по умолчанию.
Более подробная информация об имени по
умолчанию
Научиться извлекать изменения из
удаленного репозиторияcat README.mdДобавим локальную ветку, которая
отслеживает удаленную веткуОтправка измененийИзвлечение общих изменений
Написание отчета по лабораторной работе в формате Markdown.
Заголовок и нумерованный
списокМаркированный списокЖирный текстРабота с изображениямиВставка кодаСсылки
Результаты
В ходе данной работы я приобрела практические навыки работы с
системой контроля версий git. Работа с репозиториями, внесение
изменений, индексация, коммиты.